/*
 * ================================================================================变量定义区
 */

var showCount = 10; //定义每页显示条数
var currentPage = 1;//全局变量，当前页

/*
 * ================================================================================页面初始化函数
 */
$(function()
{
	//加载datepicker插件
	$('#start_time').datetimepicker({
		dateFormat:'yy-mm-dd',
		timeFormat: 'HH:mm:ss'
	});
	$('#end_time').datetimepicker({
		dateFormat:'yy-mm-dd',
		timeFormat: 'HH:mm:ss'
	});
	
    //设置开始时间的默认时间
	var current_time = $('#end_time').val();
	var start_time = current_time.substring(0, current_time.indexOf(" ")+1) + "00:00:00";	
	$('#start_time').val(start_time);
	
	var pageType = $("#pageType").val();
	//获取上次列表
	if(pageType === 'lastest')
	{
		getLastestListAndForm();
	}
	else
	{
		getCurrentList(currentPage);
	}
	
	//回车键绑定事件
	document.onkeydown = function(event)
	{
	    var e = event || window.event || arguments.callee.caller.arguments[0];
	    
	     if(e && e.keyCode==13) // enter 键
	     {
	         //从第一页开始，查询数据
	    	 getCurrentList(1);
	     }
	};
		
});

/*
 * ================================================================================函数定义区
 * 
 */

/**
 * 获取当前请求列表
 * @param pageIndex
 */
function getCurrentList(pageIndex)
{
	var start_time = $("#start_time").val();
	var end_time = $("#end_time").val();
	var op_type = $("#op_type").val();
	var create_user = $("#create_user").val();
	var host_name = $("#host_name").val();
	var ip = $("#ip").val();
	
	var param =
		{
			"showCount" : showCount,
			"currentPage" : pageIndex,
			"start_time" : start_time,
			"end_time" : end_time,
			"op_type" : op_type,
			"create_user" : create_user.trim().toUpperCase(),
			"host_name" : host_name.trim().toUpperCase(),
			"ip" : ip,
			"query_condition_field_list" : "start_time,end_time,op_type,create_user,host_name,ip"
		};
	
	getDataList(param);
	
	//向SessionStorage存储数据
	SessionStorage.setSearchParam(
	{
		formParam: 
		{
			start_time :start_time,
			end_time   :end_time,
			op_type    :op_type,
		    create_user:create_user,
			host_name  :host_name,
			ip         :ip
		},
		searchParam: param
	});
}

/**
 * 获取列表数据
 * @param currentPage 请求的页码
 */
function getDataList(param)
{	
	$('#tBodyList').html("");
	
	$.ajax(
	{
		type: 'POST',
        url: BASE_PATH +'/systemMonitor/userOperationMonitor/getUserOperationMonitorList.do',
        dataType:"json",
        data : param,       
        success:function(data,textStatus)
        {
        	var html = "";        	
        	var pageData = data;
        	var totalResult = pageData.queryParam.totalResult;
        	
        	if(pageData.queryResult != null)
        	{
        		//解析data, 组装成html
	        	$.each(pageData.queryResult,function(i,n)
	        	{	  
	        		html +='<tr onclick="chooseRow(this,false);"  id="tr_index_'+i+'">';
	        		html +=     '<input  name="id" type="hidden" value="' + check(n.id) + '" />';
	        		html +=		'<td style="text-align: center;" title="'+switcHtml(check(n.createTime))+'">'+switcHtml(check(n.createTime))+'</td>';
	        		html +=		'<td title='+switcHtml(check(n.createUser))+'>'+switcHtml(check(n.createUser))+'</td>';
	        		if(n.userNameCN=='' || n.userNameCN==null){
	        			html +=		'<td title='+'Anonymous'+'>'+'Anonymous'+'</td>';
	        		}else{
	        			html +=		'<td title='+switcHtml(check(n.userNameCN))+'>'+switcHtml(check(n.userNameCN))+'</td>';
	        		}
	        		if(n.opType=='i'){
	        			html +=	'<td  title="登录">登录</td>';
	        		}
	        		else if(n.opType=='o'){
	        			html +=	'<td  title="登出">登出</td>';
	        		}
                    else if(n.opType=='a'){
                    	html +=	'<td  title="攻击">攻击</td>';
	        		}
                    else{
                    	html +=	'<td  title="黑名单用户">黑名单用户</td>';
	        		}
	        		html +=		'<td title='+switcHtml(check(n.ip))+'>'+switcHtml(check(n.ip))+'</td>';
	        		html +=		'<td title='+switcHtml(check(n.hostName))+'>'+switcHtml(check(n.hostName))+'</td>';
	        		html +=     '<td style="width: 1px;"></td>';
	        		html +='</tr>';
	        	});  
        	}
        	
        	$('#tBodyList').html(html);
        	
        	//请求第一页时，同时初始化分页插件。  
        	currentPage = param.currentPage;
        	
    		if(totalResult == 0)
    		{
    			$('#tBodyList').html('<tr><td style="text-align:center;">No items.</td></tr>');
    			$("#pagination").hide();
    		} 
    		else 
    		{
    			// 创建分页
    			$("#pagination").show();
    			$("#pagination").pagination(totalResult, 
    			{
    				num_edge_entries: 1, //边缘页数
    				num_display_entries: 3, //主体页数
    				current_page:currentPage,
    				callback: getCurrentList,
    				items_per_page:showCount //每页显示1项
    			});
    		}
        	chooseId = null;
        	
        },
        
		error:function(e)
		{
			openAlert("加载数据错误！"); 
			 return;
		}
	});
} 

/**
 * 查询操作用户日志
 */
function queryUserOperationMonitorList()
{	
	getCurrentList(1);
}

/**
 * 查看详情按钮
 * @returns {Boolean}
 */
function queryUserOperationMonitorDetail() 
{
	var id = getSelectedRows();
	if (!id || id.length < 1) 
	{
		openAlert('请选择一条记录');
		return false;
	}
	var operationId = $("#" + id).find("input").val();
	$("#submitForm [name=operationId]").val(operationId);
	$("#submitForm").submit();
}

/**
 * 判断是值否为空
 * @param name
 * @returns name 返回检查后的name
 */
function check(name)
{
	if(name == null)
	{
		return name='';
	}
	else
	{
		return name;
	}
}

/**
 * 获取最近一次的列表
 * 从SessionStorage中获取参数
 */
function getLastestListAndForm()
{
	// 获取参数
	var param = SessionStorage.getSearchParam(),
	// 表单参数
	formParam = param.formParam,
	// 搜索参数
	searchParam = param.searchParam;
	
	$("#start_time").val(formParam.start_time);
	$("#end_time").val(formParam.end_time);
	$("#op_type").val(formParam.op_type);
	$("#create_user").val(formParam.create_user);
	$("#host_name").val(formParam.host_name);
	$("#ip").val(formParam.ip);
	
	// 列表获取
	getDataList(searchParam);
	
	// 向SessionStorage存储数据
	SessionStorage.setSearchParam(
	{
		formParam : formParam,
		searchParam : searchParam
	});
}

